package com.agl.api.dto.invoicing;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 采购单对象扩展类
 * @author xuganghua
 */
@ApiModel(value="采购单对象扩展类", description="物料采购订单主表，为订单主表信息")
@Data
public class AglInvMaterialOrderBillDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "物料采购订单id（自增长）")
    private Long materialOrderId;

    @ApiModelProperty(value = "采购订单编号（单号规则生成）")
    private String materialOrderCode;

    @ApiModelProperty(value = "采购订单状态（走工作流）")
    private Long orderStatus;

    @ApiModelProperty(value = "1、成品采购，2、备件采购（用于区分本次采购的是成品还是备件）")
    private Integer orderClassify;

    @ApiModelProperty(value = "采购单来源（第三方系统名称）")
    private Long orderSource;

    @ApiModelProperty(value = "紧急程度（下拉从系统参数中获取，可以自定义）")
    private String orderEmergencyLevel;

    @ApiModelProperty(value = "收货仓库id（下拉从仓库信息中选择）")
    private Long receiveWarehouseId;

    @ApiModelProperty(value = "收货公司id（当前登录人员所在公司）")
    private Long receiveCompanyId;

    @ApiModelProperty(value = "收货联系人（发货时的收货人名称）")
    private String orderReceiveLinkman;

    @ApiModelProperty(value = "收货联系电话（发货时的收货人电话）")
    private String orderReceivePhone;

    @ApiModelProperty(value = "收货地址（发货时的收货地址）")
    private String orderReceiveAddress;

    @ApiModelProperty(value = "1、供应商，2、上级公司,用于判断解析供货单位编号的b表")
    private Integer supplyCompanyType;

    @ApiModelProperty(value = "供货公司id（上级公司id或者供应商id，根据供货公司类型判断）")
    private Long supplyCompanyId;

    @ApiModelProperty(value = "1、待入库，2、入库审核中，3、已入库（用于判断外部采购时入库单能否选择）")
    private Integer supplierMaterialStatus;

    @ApiModelProperty(value = "备注")
    private String orderRemark;

    @ApiModelProperty(value = "整个采购单的总金额")
    private BigDecimal orderSum;

    @ApiModelProperty(value = "计划交货日期")
    private LocalDateTime planDeliveryDate;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createdDateTime;

    @ApiModelProperty(value = "创建人员id")
    private Long createdBy;

    @ApiModelProperty(value = "创建公司id")
    private Long createdCompanyId;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime modifiedDateTime;

    @ApiModelProperty(value = "修改人员id")
    private Long modifiedBy;

    @ApiModelProperty(value = "修改公司id")
    private Long modifiedCompanyId;

    @ApiModelProperty(value = "组织架构id")
    private Long orgId;


}
